The invention relates to transport of data in ATM format between ATM networks over a multi-protocol communications network using multi-protocol label switching.
There are a large number of communications networks of different kinds, each being designed specifically for different purposes. These networks converge form a large network. User traffic of one type must traverse many diverse networks, each operating by different paradigms and requiring different protocol stacks, before it reaches the destination. MPLS (Multiprotocol Label Switching) is being developed to solve some of the problems which involve the existence of different protocols along the traffic path.
For example, as a packet of a connectionless network layer protocol, such as Internet protocol, travels from one router to the next, each router makes an independent forwarding decision for that packet. Each router analyzes the packet""s header, and each router runs a network layer routing algorithm. Each router independently chooses a next hop for the packet, based on its analysis of the packet""s header and the results of running the routing algorithm.
Packet headers contain considerably more information than is needed simply to choose the next hop. Choosing the next hop can therefore be thought of as the composition of two functions. The first function partitions the entire set of possible packets into a set of xe2x80x9cForwarding Equivalence Classes (FECs)xe2x80x9d. The second maps each FEC to a next hop. Insofar as the forwarding decision is concerned, different packets which get mapped into the same FEC are indistinguishable. All packets which belong to a particular FEC and which travel from a particular node will follow the same path (or if certain kinds of multi-path routing are in use, they will all follow one of a set of paths associated with the FEC).
In conventional IP forwarding, a particular router will typically consider two packets to be in the same FEC if there is some address prefix X in that router""s routing tables such that X is the xe2x80x9clongest matchxe2x80x9d for each packet""s destination address. As the packet traverses the network, each hop in turn reexamines the packet and assigns it to a FEC.
MPLS is being developed as a technique which attempts to use the network resources, such as bandwidth, more efficiently, while preserving services, e.g., QoS. It can carry any network layer protocol.
IETF-MPLS-ARC-06 xe2x80x9cMultiprotocol Label Switching Architecturexe2x80x9d by Rosen et al, August 1999 describes in detail the architecture of MPLS.
In MPLS, the assignment of a particular packet to a particular FEC is done just once, as the packet enters the network. The FEC to which the packet is assigned is encoded as a short fixed length value known as a xe2x80x9clabelxe2x80x9d. When a packet is forwarded to its next hop, the label is sent along with it; that is, the packets are xe2x80x9clabeledxe2x80x9d before they are forwarded.
At subsequent hops, there is no further analysis of the packet""s network layer header. Rather, the label is used as an index into a table which specifies the next hop, and a new label. The old label is replaced with the new label, and the packet is forwarded to its next hop.
In the MPLS forwarding paradigm, once a packet is assigned to a FEC, no further header analysis is done by subsequent routers; all forwarding is driven by the labels. MPLS uses a label to encapsulate the native traffic and forms a labeled packet. Each MPLS node switches labeled packets to a next MPLS node using labels. An MPLS packet traverses different kinds of networks one after another before it reaches the destination MPLS node which converts the packet back to its native form. It should also be noted that MPLS labels are in a fixed length which may be 0 bytes long in some environment. For example, MPLS packets can be transported through a time-slotted link e.g., TDM (time division multiplex) link. In such a case, MPLS packets are mapped at a specified timeslot on the link. Once such a link is established for MPLS traffic, MPLS packets no longer need to carry MPLS labels.
It should be emphasized that effort has been made to differentiate xe2x80x9cencapsulating a payload into an MPLS labeled packetxe2x80x9d, xe2x80x9cplacing a payload into an MPLS labeled packetxe2x80x9d, xe2x80x9cpacketizing into an MPLS packetxe2x80x9d and other similar expressions. It may however be possible that xe2x80x9cencapsulating a payload into an MPLS labeled packetxe2x80x9d at some location could mean xe2x80x9cencapsulating a payload into an MPLS labeled packet with a 0-byte labelxe2x80x9d, i.e., xe2x80x9cplacing a payload into an MPLS labeled packetxe2x80x9d.
Customer payload comes in a variety of formats and an MPLS node must analyze it so that it can insert the payload into MPLS labeled packets with MPLS packet label having sufficient information for forwarding them properly to the next MPLS node. The MPLS packets, therefore, can be transported over different media e.g., ATM, Frame Relay, TDM, DWDM (Dense Wavelength Division Multiplex), LAN (Ethernet etc.), etc. MPLS therefore forms one MPLS domain, encompassing a variety of different kinds of networks. This has a number of advantages over conventional network layer forwarding.
As shown in FIG. 1, MPLS therefore enables to form one multiservice MPLS domain which encompasses a number of diverse networks, such as IP, ATM, Frame Relay, TDM, DWDM, LAN etc. Unlike other network, e.g., ATM, LAN, etc., the MPLS domain is easily scaled-up in terms of the number of connections, bandwidth administration, failure (error) management etc. In FIG. 1, an MPLS domain 10 can be made up of aggregation of different networks 12. Nodes 14 and 16 at the edge of the MPLS domain contains MPLS capabilities and function as MPLS nodes handling a variety of traffic to and from external networks which include TDM, LAN, IP, Frame Relay, IP, ATM etc. In the Figure nodes 14 are communicating with one another in ATM traffic.
In one form, transport of the MPLS packet between two MPLS capable nodes is performed by such a link layer protocol as PPP (point-to-point protocol). Other link layer protocols can be envisaged for this purpose with appropriate modifications. The PPP (Point-to-Point Protocol) is well known in the field of data communication. Briefly stated, however, the PPP is designed for simple links which transport packets between two peers. These links provide full-duplex simultaneous bidirectional operation, and are assumed to deliver packets in order. The PPP consists of a way of encapsulating multi-protocol datagrams, a Link Control Protocol (LCP) for establishing, configuring, and testing the data-link connection and a family of Network Control Protocol (NCPs) for establishing and configuring different network-layer protocols. This protocol is capable of transporting MPLS packets between two MPLS capable nodes.
In order to transport ATM cells from one ATM network to another over an MPLS domain, MPLS packets must be generated at the ingress of the MPLS domain and must be converted back to ATM cell at the egress of the MPLS domain. However, if the entire ATM cell is to be encapsulated in a MPLS labeled packet, there would be a large number of bytes wasted. There exists no suitable method or system which is capable of placing ATM cells into MPLS labeled packets.
The present invention addresses problems of placing ATM cells into MPLS labeled packets so that ATM cells are properly transported over networks and can be regenerated at the destination MPLS node, without loss of ATM services. By this invention, therefore, ATM cells can be formed into a self-describing MPLS packet which carry necessary information concerning transmitting it over an MPLS domain to a proper destination MPLS node.
In accordance with one aspect, the invention is directed to a method of transporting ATM cells between two nodes over a multiprotocol label switching domain, hereinafter called an MPLS domain. The method comprises steps of reading an ATM header to obtain attributes of an ATM cell received at a first node, the attributes of the ATM cell including a type of ATM payload. The method further comprises steps of generating an ATM common header for the ATM cell, the ATM common header mapping the type of ATM payload and other attributes of the ATM cell, generating an MPLS labeled packet which includes the ATM common header and the ATM payload, the MPLS labeled packet containing routing information to a second node, and transmitting the MPLS labeled packet to the second node.
In accordance with another aspect, the invention is directed to a method of transporting one or more ATM cells over a multiprotocol label switching domain, hereinafter called an MPLS domain. The method comprises steps of determining at a source node that the one or more ATM cells are of an AAL5 frame and are destined to a destination node of the MPLS domain, applying a common header to the payload of each ATM cell, the common header indicating attributes of each payload, the attributes of each payload including that the payload is a frame payload and a type of message of the payload, generating an MPLS labeled packet which includes the common header and the frame payload, the MPLS labeled packet mapping information concerning the destination node, and transmitting the MPLS labeled packet to the destination node.
In accordance with a yet further aspect, the invention is directed to an apparatus for transporting ATM cells between two nodes over a multiprotocol label switching domain, hereinafter called an MPLS domain. The apparatus comprises an ATM header reader, a reassembly module and a forwarder. The ATM header reader is provided for reading an ATM header to obtain attributes of a received ATM cell, the attributes including a type of ATM payload. The reassembly module is provided for generating an ATM common header for the ATM cell, the ATM common header mapping the type of ATM payload and other attributes of the ATM cell. The forwarder is provided for generating an MPLS labeled packet which includes the ATM common header and the ATM payload. The MPLS labeled packet contains forwarding information to a second node.
The apparatus may also comprise a transmitter for transmitting the MPLS labeled packet to the second node.
In accordance with a yet further aspect, the invention is directed to a method for generating a multiprotocol label switching (MPLS) labeled packet suitable for transmitting one or more ATM cells between two nodes over an MPLS domain. The method comprises steps of reading an ATM header to obtain attributes of an ATM cell received at a first node, the attributes of the ATM cell including a type of ATM payload. The method further comprises steps of generating an ATM common header for the ATM cell, the ATM common header mapping the type of ATM payload and other attributes of the ATM cell, and generating an MPLS labeled packet which includes the ATM common header and the ATM payload, the MPLS labeled packet containing routing information to a second node.
In accordance with a yet further aspect, the invention is directed to an computer readable medium storing instructions or statements for use in the execution in a computer of a method for generating a multiprotocol label switching (MPLS) labeled packet suitable for transmitting one or more ATM cells between two nodes over an MPLS domain. The method comprises steps of reading an ATM header to obtain attributes of an ATM cell received at a first node, the attributes of the ATM cell including a type of ATM payload. The method further comprising steps of generating an ATM common header for the ATM cell, the ATM common header mapping the type of ATM payload and other attributes of the ATM cell, and generating an MPLS labeled packet which includes the ATM common header and the ATM payload, the MPLS labeled packet containing routing information to a second node.